﻿using System;
using ZOIL.DataBackend;
using ZOIL.DataModel;
using ZOIL.Framework.Presentation;

namespace ZOIL.Library.Components
{
    public class TextCard : DInformationObject, IRemoteUpdateable, Card
    {
        public TextCard()
            : base()
        {

        }

        #region Properties

        public int? ProID
        {
            get
            {
                return (int?)GetValue("TextCard:ProID");
            }
            set
            {
                SetValue("TextCard:ProID", value);
                RaisePropertyChangedEvent("ProID");
            }
        }

        public int? CategoryID
        {
            get
            {
                return (int?)GetValue("TextCard:CategoryID");
            }
            set
            {
                SetValue("TextCard:CategoryID", value);
                RaisePropertyChangedEvent("CategoryID");
            }
        }

        public int? ZoomLevel1
        {
            get
            {
                return (int?)GetValue("TextCard:ZoomLevel1");
            }
            set
            {
                SetValue("TextCard:ZoomLevel1", value);
                RaisePropertyChangedEvent("ZoomLevel1");
            }
        }

        public int? ZoomLevel2
        {
            get
            {
                return (int?)GetValue("TextCard:ZoomLevel2");
            }
            set
            {
                SetValue("TextCard:ZoomLevel2", value);
                RaisePropertyChangedEvent("ZoomLevel2");
            }
        }

        public int? ZoomLevel3
        {
            get
            {
                return (int?)GetValue("TextCard:ZoomLevel3");
            }
            set
            {
                SetValue("TextCard:ZoomLevel3", value);
                RaisePropertyChangedEvent("ZoomLevel3");
            }
        }

        public String SmallText
        {
            get
            {
                return GetValue<String>("TextCard:SmallText");
            }
            set
            {
                SetValue("TextCard:SmallText", value);
                RaisePropertyChangedEvent("SmallText");
            }
        }

        public String LargeText
        {
            get
            {
                return GetValue<String>("TextCard:LargeText");
            }
            set
            {
                SetValue("TextCard:LargeText", value);
                RaisePropertyChangedEvent("LargeText");
            }
        }

        public int? CardID
        {
            get
            {
                return (int?)GetValue("TextCard:CardID");
            }
            set
            {
                SetValue("TextCard:CardID", value);
                RaisePropertyChangedEvent("CardID");
            }
        }

        public int? FakeZoomLevelOut
        {
            get
            {
                return (int?)GetValue("TextCard:FakeZoomLevelOut");
            }
            set
            {
                SetValue("TextCard:FakeZoomLevelOut", value);
                RaisePropertyChangedEvent("FakeZoomLevelOut");
            }
        }

        public int? FakeZoomLevelIn
        {
            get
            {
                return (int?)GetValue("TextCard:FakeZoomLevelIn");
            }
            set
            {
                SetValue("TextCard:FakeZoomLevelIn", value);
                RaisePropertyChangedEvent("FakeZoomLevelIn");
            }
        }

        public int? Topic
        {
            get
            {
                return (int?)GetValue("TextCard:Topic");
            }
            set
            {
                SetValue("TextCard:Topic", value);
                RaisePropertyChangedEvent("Topic");
            }
        }

        public String LogoUrl
        {
            get
            {
                return GetValue<String>("TextCard:LogoUrl");
            }
            set
            {
                SetValue("TextCard:LogoUrl", value);
                RaisePropertyChangedEvent("LogoUrl");
            }
        }

        public String TextureUrl
        {
            get
            {
                return GetValue<String>("TextCard:TextureUrl");
            }
            set
            {
                SetValue("TextCard:TextureUrl", value);
                RaisePropertyChangedEvent("TextureUrl");
            }
        }

        public int? LeftID
        {
            get
            {
                return (int?)GetValue("TextCard:LeftID");
            }
            set
            {
                SetValue("TextCard:LeftID", value);
                RaisePropertyChangedEvent("LeftID");
            }
        }

        public int? RightID
        {
            get
            {
                return (int?)GetValue("TextCard:RightID");
            }
            set
            {
                SetValue("TextCard:RightID", value);
                RaisePropertyChangedEvent("RightID");
            }
        }

        public int? TopID
        {
            get
            {
                return (int?)GetValue("TextCard:TopID");
            }
            set
            {
                SetValue("TextCard:TopID", value);
                RaisePropertyChangedEvent("TopID");
            }
        }

        public int? BottomID
        {
            get
            {
                return (int?)GetValue("TextCard:BottomID");
            }
            set
            {
                SetValue("TextCard:BottomID", value);
                RaisePropertyChangedEvent("BottomID");
            }
        }

        #endregion Properties


        #region IRemoteUpdateable Members

        public void OnRemoteUpdate()
        {
           
        }

        #endregion

        #region Card Members


        private ZID _parent;

        public ZID ParentZID
        {
            get
            {
                return _parent;
            }
            set
            {
                _parent = value;
            }
        }



        private bool _onScreen;

        public bool onScreen
        {
            get
            {
                return _onScreen;
            }
            set
            {
                _onScreen = value;
            }
        }

        public new ZID ID
        {
            get
            {
                return base.ID;
            }
            set
            {
                base.ID = value;
            }
        }

        #endregion
    }
}